#pragma once

#include "DD_ComCfg.h"
#include "DD_RayCfg.h"
#include "DD_PlugCfg.h"

#ifdef _DD_RayCtrl_
#define DD_RayCtrl_Mode __declspec(dllexport)
#else
#define DD_RayCtrl_Mode __declspec(dllimport)
#endif 

////////////////////////////////////////////////////////
#ifndef _DD_RayCtrl_
#ifdef _DEBUG   
#pragma comment(lib, "RayCtrlMand.lib") 
#else
#pragma comment(lib, "RayCtrlMan.lib")
#endif
#endif 

class xhRayCtrl;
class DD_RayCtrl_Mode DD_RayCtrl
{
public:
	DD_RayCtrl(void);
	~DD_RayCtrl(void);

public:
	//init
	int Initialize();
	//
	int UnInitialize();
	//parent hwnd
	int SetHwnd(HWND hWnd);
	//
	int RegMsgCallBack(void *pfun, DWORD dwContext, void *pContext);

public:
	//get the device name
	int GetPlugList(zkPlugDescs **ppDescs);
	//select device 
	int SelectPlug(char *pDescName);

public:
	int OpParam(void *pVoid = NULL);

public:
	int SetComCfg(zkComCfg *pCfg);
	int SetRayCfg(zkRayCfg *pCfg);

public:
	int CheckConnect(int &nStatus);

public:
	int SetRayCtrl(zkRayCtrl *pRayCtrl);
	int GetRayCtrl(zkRayCtrl **ppRayCtrl);

private:
	xhRayCtrl  *m_pxhRayCtrl;

};
